Amazon Bedrock Knowledge BaseでRAG評価機能(プレビュー)が使えるようになりました。
Amazon Bedrock Knowledge BaseでRAGの評価機能(プレビュー)が追加されました。
こちらの機能を利用することで、コンテキストの関連性、正確性、完全性などの指標を使用して、ナレッジベースのパフォーマンス詳細を確認することができるようになりました。
AWSブログも公開されています。
やってみた
Evaluations内に新しくKnowledgeBasesのページが追加されていることが確認できます。
まずはCreate
ボタンから作成をしてみます。
Evaluation details
名前と説明を入力後、評価メトリックを計算するモデルを選択します。
今回は Claude 3.5 Sonnet を使用します。
Knowledge Base details
続いて、評価するナレッジベースを選択します。
今回は以前作成済みのものがあるので、そちらを使用します。
Knowledge Base evaluation typeには以下のどちらかが選択可能です。(typeによって後続のMetricsの選択肢が変動します。)
- Retrieval and response generation
- Retrieval only
Retrieval and response generation
を選択した場合は、応答生成に使用するモデルも選択する必要があります。
今回は Claude 3 Haiku を使用します。
Metrics
ここでは評価メトリクスにを選択可能です。
Qualityでは Helpfulness 、 Correctness を選択し、Responsible AIでは Harmfulness を選択します。
Dataset and evaluation results S3 location
ここでは評価に使用するデータセットと評価結果を保存するS3の指定が可能です。
S3バケットにCORSの設定が必要ですので、以下を参考に実施します。
評価用データセットをファイル拡張子 (.JSONL、.jsonl) で用意しバケットにアップロードします。
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"勤怠管理システムへのアクセスは、専用のウェブサイト(https://kintai.example.com/)を通じて行います。"}]}],"prompt":{"content":[{"text":"勤怠管理システムにはどのようにアクセスしますか?"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"有給休暇を申請するには、メインメニューから休暇申請のセクションを選択し、「有給休暇」のオプションをクリックします。新規申請を選び、申請日、休暇取得日、休暇終了日、および休暇の理由を入力してください。"}]}],"prompt":{"content":[{"text":"有給休暇の申請手順を教えてください。"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"病欠を申請する場合は、休暇申請のセクションから「病欠」を選択し、新規申請を行います。休暇開始日、休暇終了予定日、病名や症状を入力し、医師からの診断書がある場合は、それをシステムにアップロードします。"}]}],"prompt":{"content":[{"text":"病欠の申請方法を説明してください。"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"慶弔休暇の申請には、休暇申請セクションから「慶弔休暇」を選び、新規申請を開始します。休暇の種類(結婚、出産、弔事など)を選択し、休暇開始日と終了日、休暇の理由を入力する必要があります。"}]}],"prompt":{"content":[{"text":"慶弔休暇はどのように申請しますか?"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"申請した休暇の承認状況は、メインメニューから「申請状況確認」を選択することで確認できます。承認、却下、または保留中の状態を確認することが可能です。"}]}],"prompt":{"content":[{"text":"休暇申請の承認状況はどのように確認できますか?"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"システムの使用に関して不明点がある場合は、人事部門(内線:1234)までお問い合わせください。"}]}],"prompt":{"content":[{"text":"システムについて質問がある場合、どこに問い合わせればよいですか?"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"メインメニューから休暇申請のセクションを選択し、申請したい休暇の種類(有給休暇、病欠、慶弔休暇)を選んで必要事項を入力します。入力後、「申請」ボタンをクリックすることで申請が完了します。"}]}],"prompt":{"content":[{"text":"休暇申請の基本的な流れを説明してください。"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"本マニュアルは、従業員が勤怠管理システムを使用して慶弔休暇、有給休暇、病欠などの各種休暇の申請を行う方法について説明するものです。"}]}],"prompt":{"content":[{"text":"このマニュアルの目的は何ですか?"}]}}]}
それぞれパスを指定します。
Results for evaluation のバケットはキー(フォルダ)の指定をする必要があるので、注意してください。
Service access
最後にIAMロールを作成します。
サービスロール名のみ任意の値を入力します。
S3バケットの情報は前のセクションで指定した値が自動で入力されるので、ロールを作成
をクリックします。
ロールが作成されると、自動で選択されます。
全セクションの入力が終わったら、右下から作成
に進みます。
出力結果の確認
作成から15分ほど待つとStatusが 完了済み になり、結果の閲覧が可能になります。
メトリクスの概要と評価指標の内訳が確認でき、今回は以下の結果となりました。
- 正確さ(Correctness):
1
- 有用性(Helpfulness):
0.81
- 有害(Harmfulness):
0
Example conversationsを展開することで実際の会話やスコア等の詳細を確認することができました。
今回は試せていませんが、評価結果同士の比較もできるようなので、複数のナレッジベースがある場合は比較してみると良いでしょう。
まとめ
今回はRAG評価機能がプレビューされたので、試してみました。
今まではRAGAS等のツールを使って評価する必要がありましたが、本機能を利用することでAWSコンソールから評価ができるようになりました。
どなたかの参考になれば幸いです。